from typing import Any, Final, TypeGuard, TypeVar, Type

_T = TypeVar("_T")

def _type_guard(obj: Any, *expect_types: Type[_T]) -> TypeGuard[_T]:
    return isinstance(obj, expect_types)

def _type_checker(obj: Any, *expect_types: Type[_T]) -> _T:
    assert isinstance(obj, expect_types), \
        TypeError(f"Expect {expect_types}, got {type(obj)}")
    return obj

class VE_EXIT_CODE:
    SUCCESS: Final[int] = 0
    RUN_BEFORE_INITIALIZE: Final[int] = -1
    MUTIPLE_APP: Final[int] = -2
    EH_NOT_FOUND: Final[int] = -3